package com.kx.center.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

//import net.sf.json.JSONObject;

public class WdtUtil {
//	public static final String SID = "wdt2_opentest";// 卖家账号id
//	public static final String APPKEY = "kuaixian2";// 由旺店通分配的第三方应用帐号
//	public static final String APPSECRET = "12345";// 应用秘钥
//	public static final String KEY_FLAG = "KEY";
//	public static final String VALUE_FLAG = "VALUE";
//	public static final String WDT_REQUEST_URL = "http://121.199.38.85";
//
//	/**
//	 * 获得数字签名
//	 */
//	public static String getSign(Map<String, Object> map) {
//		// 返回md5加密后的数据
//		String md5Sign = MD5Coder.encode(packData(map) + APPSECRET);
//		return md5Sign;
//	}
//
//	/**
//	 * 格式化map中的数据，得字符串为 "04-key1:0006-value1;04-key2:0006-value2"
//	 */
//	public static String packData(Map<String, Object> map) {
//
//		// 系统级参数
//		map.put("sid", SID);
//		map.put("appkey", APPKEY);
//		// 时间戳,秒级10位int型
//		String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
//				.format(new Date());
//		int timestamp = WdtUtil.StringToTimestamp(time);
//		map.put("timestamp", timestamp);// 时间戳
//
//		StringBuffer sb = new StringBuffer();
//
//		// 遍历map集合
//		Set<String> keySet = map.keySet();
//		Iterator<String> iter = keySet.iterator();
//		while (iter.hasNext()) {
//			String key = iter.next();
//			String keyLen = getLen(KEY_FLAG, key);
//			String value = map.get(key).toString();
//			String valueLen = getLen(VALUE_FLAG, value);
//
//			sb.append(keyLen + "-" + key + ":" + valueLen + "-" + value + ";");
//		}
//		String reqString = sb.toString().substring(0, sb.length() - 1);
//		return reqString;
//
//	}
//
//	/**
//	 * 获得字符串的长度
//	 */
//	private static String getLen(String flag, String str) {
//
//		if (flag == KEY_FLAG) {
//			// key的长度固定两位,不足2位,前面补零
//			String keyLen = String.format("%02d", str.length());
//			return keyLen;
//		} else if (flag == VALUE_FLAG) {
//			// value的长度，，固定四位
//			String valueLen = String.format("%04d", str.toString().length());
//			return valueLen;
//		} else {
//			return "长度计算失败";
//		}
//
//	}
//
//	/**
//	 * String(yyyy-MM-dd HH:mm:ss)转10位时间戳
//	 */
//	public static Integer StringToTimestamp(String time) {
//
//		int times = 0;
//		try {
//			times = (int) ((Timestamp.valueOf(time).getTime()) / 1000);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		if (times == 0) {
//			System.out.println("String转10位时间戳失败");
//		}
//		return times;
//	}
//
//	/**
//	 * 旺店通post提交
//	 */
//	public static JSONObject sendPost(String method, Map<String, Object> map)
//			throws UnsupportedEncodingException {
//
//		// 获得数字签名
//		String sign = getSign(map);
//
//		map.put("sign", sign);
//		// 遍历map集合,转换格式
//		StringBuffer sb = new StringBuffer();
//
//		Set<String> keySet = map.keySet();
//		Iterator<String> iter = keySet.iterator();
//		while (iter.hasNext()) {
//			String key = iter.next();
//			sb.append(key + "=" + map.get(key) + "&");
//		}
//
//		String reqString = sb.toString().substring(0, sb.length() - 1);
//		String url = WDT_REQUEST_URL + method;
//
//		URL uri;
//		InputStream is = null;
//		try {
//
//			uri = new URL(url);
//			HttpURLConnection conn = (HttpURLConnection) uri.openConnection();
//			conn.setRequestProperty("Accept-Charset", "utf-8");
//			conn.setRequestMethod("POST");
//			conn.setDoOutput(true);// 是否输入参数
//
//			StringBuffer params = new StringBuffer();
//
//			params.append(reqString);
//			byte[] bypes = params.toString().getBytes();
//			conn.getOutputStream().write(bypes);// 输入参数
//
//			is = conn.getInputStream();
//
//		} catch (Exception e) {
//			// 请求失败
//			System.out.println("旺店通 post 请求异常");
//		}
//
//		String responseStr = inputStreamToString(is);
//		responseStr = responseStr.substring(responseStr.indexOf("{"));
//		JSONObject json = JSONObject.fromObject(responseStr);
//		return json;
//	}
//
//	/**
//	 * 提取流中的数据
//	 */
//	private static String inputStreamToString(InputStream is) {
//		BufferedReader reader = new BufferedReader(new InputStreamReader(is,
//				Charset.forName("utf-8")));
//		StringBuilder sb = new StringBuilder();
//		String line = null;
//		try {
//			while ((line = reader.readLine()) != null) {
//				sb.append(line);
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		} finally {
//			try {
//				is.close();
//			} catch (IOException e) {
//				e.printStackTrace();
//			}
//		}
//		return sb.toString();
//	}
//	
//	public static void main(String[] args) {
//    	Map<String, Object> map = new TreeMap<String, Object>();
//		map.put("outer_no", "test0015");
//		map.put("from_warehouse_no", "001");
//		map.put("to_warehouse_no", "002");
//		map.put("address", "天博中润");
//		map.put("contact", "你猜");
//		map.put("telno", "13344445555");
//		map.put("remark", "测试");
//		map.put("skus", new ArrayList<TreeMap<String, Object>>());
//		@SuppressWarnings("unchecked")
//		ArrayList<TreeMap<String, Object>> list = (ArrayList<TreeMap<String, Object>>) map
//				.get("skus");
//		TreeMap<String, Object> treeMap = new TreeMap<String, Object>();
//		treeMap.put("spec_no", "NESTX0002003");
//		treeMap.put("num", "1");
//		treeMap.put("remark", "测试接口快速调拨");
//		list.add(treeMap);
//		
//		try {
//			JSONObject json = WdtUtil.sendPost("/openapi2/stock_transfer_push.php",map);
//			System.out.println(json);
//			
//		}catch(Exception e){
//			System.out.println(e);
//		}
//	}
}
